package com.zmn.plat.dubbo.interfaces.push;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;

import com.zmn.common.dto.ResultDTO;
import com.zmn.common.dto.push.ali.AliSmsSignNameEnum;
import com.zmn.common.dto.push.ali.BaseAliSmsDTO;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;

/**
 * 阿里短信发送远程服务
 *
 * @author duanzuocai
 * @version v1.0
 * @since 2018/12/19 11:28
 */
@Api(value = "阿里短信发送远程服务", tags = {"阿里短信发送"})
public interface AliSmsRemoteService {

    /**
     * dubbo 提供发送阿里短信服务
     *
     * @param mobile
     *            手机号
     * @param template
     *            模板（传入 BaseAliSmsDTO 的子类）
     * @param signName
     *            短信签名
     * @return
     */
    @ApiOperation(value = "提供发送阿里短信服务", response = ResultDTO.class, notes = "", tags = {"阿里短信发送"})
    ResultDTO sendAliSmsInfo(String mobile, @NotNull(message = "入参不能为空") @Valid @ApiParam(value = "入参", required = true) BaseAliSmsDTO template,
        @NotNull(message = "入参不能为空") @Valid @ApiParam(value = "入参", required = true) AliSmsSignNameEnum signName);
}
